<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			li {
				padding-top: 8px;
			}
		</style>
	</head>

	<body>
		<p style="color: red;">什么是WebSQL：</p>
		<p>HTML5本地存储——Web SQL Database；其包含三个核心方法，分别是：<br />
			<ul>
				<li>openDatabase：这个方法使用现有数据库或新建数据库来创建数据库对象；</li>
				<li> transaction：这个方法允许我们根据情况控制事务提交或回滚；</li>
				<li> executeSql：这个方法用于执行SQL 查询</li>
			</ul>
		</p>
		<hr />
		<p style="color: red;">jQuery 的属性拷贝(extend)的实现原理是什么，如何实现深拷贝？</p>
		<p>extend()是jQuery中一个重要的函数，作用是实现对对象的扩展, 它经常用于jQuery插件的开发，jQuery内部也使用它来扩展属性方法，它可以把两个或者更多的对象合并到第一个当中； 所谓深拷贝就是指将B对象以及其全部子对象全部拷贝到A对象中，而浅拷贝只会B对象不包括其子对象中 直接使用var newObj = object.create(oldObj)，可以达到深拷贝的效果.
		</p>
		<br />
		<br />
		<hr />
		<p style="color: red;">Jquery中的bind(),live(),delegate(),on()的区别：</p>
		<ul>
			<li>bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数
				<br />
				<span style="color: deepskyblue;">$("a").bind("click",function(){alert("ok");});</span>
			</li>
			<li>live(type,[data],fn) 给所有匹配的元素附加一个事件处理函数，即使这个元素是以后再添加进来的
				<br />
				<span style="color: deepskyblue;">$("a").live("click",function(){alert("ok");});</span>
			</li>
			<li>delegate(selector,[type],[data],fn) 指定的元素（属于被选元素的子元素）添加一个或多个事件处理程序，并规定当这些事件发生时运行的函数
				<br />
				<span style="color: deepskyblue;">$("#container").delegate("a","click",function(){alert("ok");})</span>
			</li>
			<li>on(events,[selector],[data],fn) 在选择元素上绑定一个或多个事件的事件处理函数</li>
		</ul>
		<p style="color: red; line-height:30px;">
			bind()是直接绑定在元素上
			<br /> .live()则是通过冒泡的方式来绑定到元素上的,更适合列表类型的，绑定到document DOM节点上。和.bind()的优势是支持动态数据。
			<br /> .delegate()则是更精确的小范围使用事件代理，性能优于.live()
			<br /> .on()则是最新的1.9版本整合了之前的三种方式的新事件绑定机制
		</p>
		<br />
		<hr />
		<p style="color: red;">JQ同时绑定多个事件的实现：</p>
		<p style="line-height: 30px;">$ele.on('eventName', handle1); $ele.on('eventName', handle2); 
			<br />
			$ele.on('eventName', handle3); 
			<br />
			其实$ele元素的eventName事件有一个处理函数数组 监听一次就往里面放一个handle， 数组是先进后出型的也就是栈， 然后触发事件的时候一次执行
		</p>
	</body>

</html>